/*
 * @Author: aggfb 714740235@qq.com
 * @Date: 2024-04-22 21:39:52
 * @LastEditors: aggfb 714740235@qq.com
 * @LastEditTime: 2024-05-19 17:47:00
 * @FilePath: \label_rack_control\firmware\bsp\bsp_sys.c
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include "bsp_sys.h"
#include "bsp_delay.h"
#include "bsp_gpio.h"
#include "bsp_timer.h"
#include "bsp_usart.h"


//采用如下方法实现执行汇编指令WFI  
void WFI_SET(void)
{
    __ASM volatile("wfi");          
}
//关闭所有中断
void INTX_DISABLE(void)
{          
    __ASM volatile("cpsid i");
}
//开启所有中断
void INTX_ENABLE(void)
{
    __ASM volatile("cpsie i");          
}
//设置栈顶地址
//addr:栈顶地址
__asm void MSR_MSP(u32 addr) 
{
    MSR MSP, r0             //set Main Stack value
    BX r14
}

/**
 * 系统硬件初始化
*/
void bsp_system_init(void)
{
    bsp_delay_init();
    bsp_gpio_init();
    bsp_timer4_init(); /* 用于1ms时基*/
    bsp_timer2_init(); /* 用于捕获传感器数据 */
    bsp_uart3_init(115200);
}
